1
数据转换编程
AI019Lesson 1
00:00

在 Elixir 中,我们摒弃了通过修改状态来实现的命令式编程模式,转而采用基于流的编程方式,程序表现为一系列独立的 纯粹的变换。与其告诉计算机 如何 去改变一个值,不如定义一个函数流水线,其中 编程应专注于数据转换

1. 不可变性原则

在 Elixir 中, 所有值都是不可变的一旦数据被创建,就无法被修改。这确保了 不可变的数据就是已知的数据——信息永远不会意外地发生变化,从而彻底消除了大量与状态相关的错误。这种变换从不修改原始数据;相反,每个函数都会创建一个 全新的、干净的版本 数据的新版本。

原始数据变换新状态|>|>

2. 管道哲学

管道操作符(|>)将数据视为在工厂流水线上流动的液体。函数式编程语言让我们能够以逐步变换数据的函数视角来思考问题。

3. 演员上下文

在 Erlang 虚拟机(BEAM)中,代码运行于 微小的并发进程,每个进程都有自己的状态。 进程之间通过消息进行通信。由于通信是通过消息传递完成的,因此在网络中的不同机器之间交换数据,由虚拟机透明地处理。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>